Product Code Database
Example Keywords: tetris -soulcalibur $86-180
barcode-scavenger
   » » Wiki: User Space And Kernel Space
Tag Wiki 'User Space And Kernel Space'.
Tag

A modern computer usually uses to provide separate address spaces or regions of a single address space, called user space and kernel space. This separation primarily provides memory protection and hardware protection from malicious or errant software behaviour.

Kernel space is strictly reserved for running a privileged operating system kernel, kernel extensions, and most . In contrast, user space is the memory area where application software and some drivers execute, typically with one address space per process.


Overview
The term user space (or userland) refers to all code that runs outside the operating system's kernel. User space usually refers to the various programs and libraries that the operating system uses to interact with the kernel: software that performs input/output, manipulates objects, application software, etc.

Each user space process usually runs in its own space, and, unless explicitly allowed, cannot access the memory of other processes. This is the basis for memory protection in today's mainstream operating systems, and a building block for privilege separation. A separate user mode can also be used to build efficient virtual machines – see Popek and Goldberg's virtualization requirements. With enough privileges, processes can request the kernel to map part of another process's memory space to their own, as is the case for . Programs can also request shared memory regions with other processes, although other techniques are also available to allow inter-process communication.


Implementation
The most common way of implementing a user mode separate from involves operating system . Protection rings, in turn, are implemented using . Typically, kernel space programs run in , also called ; standard applications in user space run in user mode.

Some operating systems are single address space operating systems—with a single address space for all user-mode code. (The kernel-mode code may be in the same address space, or it may be in a second address space). Other operating systems have a per-process address space, with a separate address space for each user-mode process.

Another approach taken in experimental operating systems is to have a single for all software, and rely on a programming language's semantics to ensure that arbitrary memory cannot be accessed – applications cannot acquire any references to the objects that they are not allowed to access. This approach has been implemented in JXOS, Unununium and Microsoft's Singularity research project.


See also
  • Early user space
  • Memory protection
  • OS-level virtualization


Notes

External links

Page 1 of 1
1
Page 1 of 1
1

Account

Social:
Pages:  ..   .. 
Items:  .. 

Navigation

General: Atom Feed Atom Feed  .. 
Help:  ..   .. 
Category:  ..   .. 
Media:  ..   .. 
Posts:  ..   ..   .. 

Statistics

Page:  .. 
Summary:  .. 
1 Tags
10/10 Page Rank
5 Page Refs
1s Time